home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / CIncludes / Terminals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  13.8 KB  |  469 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Terminals.h
  3.  
  4.      Contains:    Communications Toolbox Terminal tool Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1988-1998, 1995-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __TERMINALS__
  18. #define __TERMINALS__
  19.  
  20. #ifndef __CONDITIONALMACROS__
  21. #include <ConditionalMacros.h>
  22. #endif
  23. #ifndef __DIALOGS__
  24. #include <Dialogs.h>
  25. #endif
  26. #ifndef __CTBUTILITIES__
  27. #include <CTBUtilities.h>
  28. #endif
  29. #ifndef __CONNECTIONS__
  30. #include <Connections.h>
  31. #endif
  32.  
  33.  
  34.  
  35. #if PRAGMA_ONCE
  36. #pragma once
  37. #endif
  38.  
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42.  
  43. #if PRAGMA_IMPORT
  44. #pragma import on
  45. #endif
  46.  
  47. #if PRAGMA_STRUCT_ALIGN
  48.     #pragma options align=mac68k
  49. #elif PRAGMA_STRUCT_PACKPUSH
  50.     #pragma pack(push, 2)
  51. #elif PRAGMA_STRUCT_PACK
  52.     #pragma pack(2)
  53. #endif
  54.  
  55.  
  56. enum {
  57.     curTMVersion                = 2                                /* current Terminal Manager version */
  58. };
  59.  
  60.  
  61. enum {
  62.     curTermEnvRecVers            = 0                                /* current Terminal Manager Environment Record version */
  63. };
  64.  
  65.  
  66. enum {
  67.                                                                 /* error codes    */
  68.     tmGenericError                = -1,
  69.     tmNoErr                        = 0,
  70.     tmNotSent                    = 1,
  71.     tmEnvironsChanged            = 2,
  72.     tmNotSupported                = 7,
  73.     tmNoTools                    = 8
  74. };
  75.  
  76. typedef OSErr                             TMErr;
  77.  
  78. enum {
  79.     tmInvisible                    = 1 << 0,
  80.     tmSaveBeforeClear            = 1 << 1,
  81.     tmNoMenus                    = 1 << 2,
  82.     tmAutoScroll                = 1 << 3,
  83.     tmConfigChanged                = 1 << 4
  84. };
  85.  
  86. typedef unsigned long                     TMFlags;
  87.  
  88. enum {
  89.     selTextNormal                = 1 << 0,
  90.     selTextBoxed                = 1 << 1,
  91.     selGraphicsMarquee            = 1 << 2,
  92.     selGraphicsLasso            = 1 << 3,
  93.     tmSearchNoDiacrit            = 1 << 8,
  94.     tmSearchNoCase                = 1 << 9
  95. };
  96.  
  97. typedef unsigned short                     TMSearchTypes;
  98. typedef short                             TMSelTypes;
  99.  
  100. enum {
  101.     cursorText                    = 1,
  102.     cursorGraphics                = 2
  103. };
  104.  
  105. typedef unsigned short                     TMCursorTypes;
  106.  
  107. enum {
  108.     tmTextTerminal                = 1 << 0,
  109.     tmGraphicsTerminal            = 1 << 1
  110. };
  111.  
  112. typedef unsigned short                     TMTermTypes;
  113.  
  114. struct TermDataBlock {
  115.     TMTermTypes                     flags;
  116.     Handle                             theData;
  117.     Handle                             auxData;
  118.     long                             reserved;
  119. };
  120. typedef struct TermDataBlock            TermDataBlock;
  121. typedef TermDataBlock *                    TermDataBlockPtr;
  122. typedef TermDataBlockPtr *                TermDataBlockH;
  123. typedef TermDataBlockPtr *                TermDataBlockHandle;
  124.  
  125. struct TermEnvironRec {
  126.     short                             version;
  127.     TMTermTypes                     termType;
  128.     short                             textRows;
  129.     short                             textCols;
  130.     Point                             cellSize;
  131.     Rect                             graphicSize;
  132.     Point                             slop;
  133.     Rect                             auxSpace;
  134. };
  135. typedef struct TermEnvironRec            TermEnvironRec;
  136.  
  137. typedef TermEnvironRec *                TermEnvironPtr;
  138.  
  139. union TMSelection {
  140.     Rect                             selRect;
  141.     RgnHandle                         selRgnHandle;
  142. };
  143. typedef union TMSelection                TMSelection;
  144. typedef struct TermRecord                 TermRecord;
  145.  
  146. typedef TermRecord *                    TermPtr;
  147. typedef TermPtr *                        TermHandle;
  148. typedef CALLBACK_API( long , TerminalSendProcPtr )(Ptr thePtr, long theSize, long refCon, CMFlags flags);
  149. typedef CALLBACK_API( void , TerminalBreakProcPtr )(long duration, long refCon);
  150. typedef CALLBACK_API( long , TerminalCacheProcPtr )(long refCon, TermDataBlockPtr theTermData);
  151. typedef CALLBACK_API( void , TerminalSearchCallBackProcPtr )(TermHandle hTerm, short refNum, Rect *foundRect);
  152. typedef CALLBACK_API( Boolean , TerminalClikLoopProcPtr )(long refCon);
  153. typedef CALLBACK_API( CMErr , TerminalEnvironsProcPtr )(long refCon, ConnEnvironRec *theEnvirons);
  154. typedef CALLBACK_API( void , TerminalChooseIdleProcPtr )(void );
  155. typedef CALLBACK_API( long , TerminalToolDefProcPtr )(TermHandle hTerm, short msg, long p1, long p2, long p3);
  156. typedef STACK_UPP_TYPE(TerminalSendProcPtr)                     TerminalSendUPP;
  157. typedef STACK_UPP_TYPE(TerminalBreakProcPtr)                     TerminalBreakUPP;
  158. typedef STACK_UPP_TYPE(TerminalCacheProcPtr)                     TerminalCacheUPP;
  159. typedef STACK_UPP_TYPE(TerminalSearchCallBackProcPtr)             TerminalSearchCallBackUPP;
  160. typedef STACK_UPP_TYPE(TerminalClikLoopProcPtr)                 TerminalClikLoopUPP;
  161. typedef STACK_UPP_TYPE(TerminalEnvironsProcPtr)                 TerminalEnvironsUPP;
  162. typedef STACK_UPP_TYPE(TerminalChooseIdleProcPtr)                 TerminalChooseIdleUPP;
  163. typedef STACK_UPP_TYPE(TerminalToolDefProcPtr)                     TerminalToolDefUPP;
  164. /*    TMTermTypes     */
  165.  
  166. struct TermRecord {
  167.     short                             procID;
  168.     TMFlags                         flags;
  169.     TMErr                             errCode;
  170.     long                             refCon;
  171.     long                             userData;
  172.     TerminalToolDefUPP                 defProc;
  173.     Ptr                             config;
  174.     Ptr                             oldConfig;
  175.     TerminalEnvironsUPP             environsProc;
  176.     long                             reserved1;
  177.     long                             reserved2;
  178.     Ptr                             tmPrivate;
  179.     TerminalSendUPP                 sendProc;
  180.     TerminalBreakUPP                 breakProc;
  181.     TerminalCacheUPP                 cacheProc;
  182.     TerminalClikLoopUPP             clikLoop;
  183.     WindowPtr                         owner;
  184.     Rect                             termRect;
  185.     Rect                             viewRect;
  186.     Rect                             visRect;
  187.     long                             lastIdle;
  188.     TMSelection                     selection;
  189.     TMSelTypes                         selType;
  190.     long                             mluField;
  191. };
  192.  
  193. enum { uppTerminalSendProcInfo = 0x00002FF0 };                     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
  194. enum { uppTerminalBreakProcInfo = 0x000003C0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes) */
  195. enum { uppTerminalCacheProcInfo = 0x000003F0 };                 /* pascal 4_bytes Func(4_bytes, 4_bytes) */
  196. enum { uppTerminalSearchCallBackProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  197. enum { uppTerminalClikLoopProcInfo = 0x000000D0 };                 /* pascal 1_byte Func(4_bytes) */
  198. enum { uppTerminalEnvironsProcInfo = 0x000003E0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  199. enum { uppTerminalChooseIdleProcInfo = 0x00000000 };             /* pascal no_return_value Func() */
  200. enum { uppTerminalToolDefProcInfo = 0x0000FEF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  201. #define NewTerminalSendProc(userRoutine)                         (TerminalSendUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSendProcInfo, GetCurrentArchitecture())
  202. #define NewTerminalBreakProc(userRoutine)                         (TerminalBreakUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalBreakProcInfo, GetCurrentArchitecture())
  203. #define NewTerminalCacheProc(userRoutine)                         (TerminalCacheUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalCacheProcInfo, GetCurrentArchitecture())
  204. #define NewTerminalSearchCallBackProc(userRoutine)                 (TerminalSearchCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSearchCallBackProcInfo, GetCurrentArchitecture())
  205. #define NewTerminalClikLoopProc(userRoutine)                     (TerminalClikLoopUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalClikLoopProcInfo, GetCurrentArchitecture())
  206. #define NewTerminalEnvironsProc(userRoutine)                     (TerminalEnvironsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalEnvironsProcInfo, GetCurrentArchitecture())
  207. #define NewTerminalChooseIdleProc(userRoutine)                     (TerminalChooseIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalChooseIdleProcInfo, GetCurrentArchitecture())
  208. #define NewTerminalToolDefProc(userRoutine)                     (TerminalToolDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalToolDefProcInfo, GetCurrentArchitecture())
  209. #define CallTerminalSendProc(userRoutine, thePtr, theSize, refCon, flags)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppTerminalSendProcInfo, (thePtr), (theSize), (refCon), (flags))
  210. #define CallTerminalBreakProc(userRoutine, duration, refCon)     CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalBreakProcInfo, (duration), (refCon))
  211. #define CallTerminalCacheProc(userRoutine, refCon, theTermData)  CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalCacheProcInfo, (refCon), (theTermData))
  212. #define CallTerminalSearchCallBackProc(userRoutine, hTerm, refNum, foundRect)  CALL_THREE_PARAMETER_UPP((userRoutine), uppTerminalSearchCallBackProcInfo, (hTerm), (refNum), (foundRect))
  213. #define CallTerminalClikLoopProc(userRoutine, refCon)             CALL_ONE_PARAMETER_UPP((userRoutine), uppTerminalClikLoopProcInfo, (refCon))
  214. #define CallTerminalEnvironsProc(userRoutine, refCon, theEnvirons)  CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalEnvironsProcInfo, (refCon), (theEnvirons))
  215. #define CallTerminalChooseIdleProc(userRoutine)                 CALL_ZERO_PARAMETER_UPP((userRoutine), uppTerminalChooseIdleProcInfo)
  216. #define CallTerminalToolDefProc(userRoutine, hTerm, msg, p1, p2, p3)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppTerminalToolDefProcInfo, (hTerm), (msg), (p1), (p2), (p3))
  217.  
  218. EXTERN_API( TMErr )
  219. InitTM                            (void);
  220.  
  221. EXTERN_API( Handle )
  222. TMGetVersion                    (TermHandle             hTerm);
  223.  
  224. EXTERN_API( short )
  225. TMGetTMVersion                    (void);
  226.  
  227. EXTERN_API( TermHandle )
  228. TMNew                            (const Rect *            termRect,
  229.                                  const Rect *            viewRect,
  230.                                  TMFlags                 flags,
  231.                                  short                     procID,
  232.                                  WindowPtr                 owner,
  233.                                  TerminalSendUPP         sendProc,
  234.                                  TerminalCacheUPP         cacheProc,
  235.                                  TerminalBreakUPP         breakProc,
  236.                                  TerminalClikLoopUPP     clikLoop,
  237.                                  TerminalEnvironsUPP     environsProc,
  238.                                  long                     refCon,
  239.                                  long                     userData);
  240.  
  241. EXTERN_API( void )
  242. TMDispose                        (TermHandle             hTerm);
  243.  
  244. EXTERN_API( void )
  245. TMKey                            (TermHandle             hTerm,
  246.                                  const EventRecord *    theEvent);
  247.  
  248. EXTERN_API( void )
  249. TMUpdate                        (TermHandle             hTerm,
  250.                                  RgnHandle                 visRgn);
  251.  
  252. EXTERN_API( void )
  253. TMPaint                            (TermHandle             hTerm,
  254.                                  const TermDataBlock *    theTermData,
  255.                                  const Rect *            theRect);
  256.  
  257. EXTERN_API( void )
  258. TMActivate                        (TermHandle             hTerm,
  259.                                  Boolean                 activate);
  260.  
  261. EXTERN_API( void )
  262. TMResume                        (TermHandle             hTerm,
  263.                                  Boolean                 resume);
  264.  
  265. EXTERN_API( void )
  266. TMClick                            (TermHandle             hTerm,
  267.                                  const EventRecord *    theEvent);
  268.  
  269. EXTERN_API( void )
  270. TMIdle                            (TermHandle             hTerm);
  271.  
  272. EXTERN_API( long )
  273. TMStream                        (TermHandle             hTerm,
  274.                                  void *                    theBuffer,
  275.                                  long                     theLength,
  276.                                  CMFlags                 flags);
  277.  
  278. EXTERN_API( Boolean )
  279. TMMenu                            (TermHandle             hTerm,
  280.                                  short                     menuID,
  281.                                  short                     item);
  282.  
  283. EXTERN_API( void )
  284. TMReset                            (TermHandle             hTerm);
  285.  
  286. EXTERN_API( void )
  287. TMClear                            (TermHandle             hTerm);
  288.  
  289. EXTERN_API( void )
  290. TMResize                        (TermHandle             hTerm,
  291.                                  const Rect *            newViewRect);
  292.  
  293. EXTERN_API( long )
  294. TMGetSelect                        (TermHandle             hTerm,
  295.                                  Handle                 theData,
  296.                                  ResType *                theType);
  297.  
  298. EXTERN_API( void )
  299. TMGetLine                        (TermHandle             hTerm,
  300.                                  short                     lineNo,
  301.                                  TermDataBlock *        theTermData);
  302.  
  303. EXTERN_API( void )
  304. TMSetSelection                    (TermHandle             hTerm,
  305.                                  const TMSelection *    theSelection,
  306.                                  TMSelTypes             selType);
  307.  
  308. EXTERN_API( void )
  309. TMScroll                        (TermHandle             hTerm,
  310.                                  short                     dh,
  311.                                  short                     dv);
  312.  
  313. EXTERN_API( Boolean )
  314. TMValidate                        (TermHandle             hTerm);
  315.  
  316. EXTERN_API( void )
  317. TMDefault                        (Ptr *                    theConfig,
  318.                                  short                     procID,
  319.                                  Boolean                 allocate);
  320.  
  321. EXTERN_API( Handle )
  322. TMSetupPreflight                (short                     procID,
  323.                                  long *                    magicCookie);
  324.  
  325. EXTERN_API( void )
  326. TMSetupSetup                    (short                     procID,
  327.                                  const void *            theConfig,
  328.                                  short                     count,
  329.                                  DialogPtr                 theDialog,
  330.                                  long *                    magicCookie);
  331.  
  332. EXTERN_API( Boolean )
  333. TMSetupFilter                    (short                     procID,
  334.                                  const void *            theConfig,
  335.                                  short                     count,
  336.                                  DialogPtr                 theDialog,
  337.                                  EventRecord *            theEvent,
  338.                                  short *                theItem,
  339.                                  long *                    magicCookie);
  340.  
  341. EXTERN_API( void )
  342. TMSetupItem                        (short                     procID,
  343.                                  const void *            theConfig,
  344.                                  short                     count,
  345.                                  DialogPtr                 theDialog,
  346.                                  short *                theItem,
  347.                                  long *                    magicCookie);
  348.  
  349. EXTERN_API( void )
  350. TMSetupXCleanup                    (short                     procID,
  351.                                  const void *            theConfig,
  352.                                  short                     count,
  353.                                  DialogPtr                 theDialog,
  354.                                  Boolean                 OKed,
  355.                                  long *                    magicCookie);
  356.  
  357. EXTERN_API( void )
  358. TMSetupPostflight                (short                     procID);
  359.  
  360. EXTERN_API( Ptr )
  361. TMGetConfig                        (TermHandle             hTerm);
  362.  
  363. EXTERN_API( short )
  364. TMSetConfig                        (TermHandle             hTerm,
  365.                                  const void *            thePtr);
  366.  
  367. EXTERN_API( OSErr )
  368. TMIntlToEnglish                    (TermHandle             hTerm,
  369.                                  const void *            inputPtr,
  370.                                  Ptr *                    outputPtr,
  371.                                  short                     language);
  372.  
  373. EXTERN_API( OSErr )
  374. TMEnglishToIntl                    (TermHandle             hTerm,
  375.                                  const void *            inputPtr,
  376.                                  Ptr *                    outputPtr,
  377.                                  short                     language);
  378.  
  379. EXTERN_API( void )
  380. TMGetToolName                    (short                     id,
  381.                                  Str255                 name);
  382.  
  383. EXTERN_API( short )
  384. TMGetProcID                        (ConstStr255Param         name);
  385.  
  386. EXTERN_API( void )
  387. TMSetRefCon                        (TermHandle             hTerm,
  388.                                  long                     refCon);
  389.  
  390. EXTERN_API( long )
  391. TMGetRefCon                        (TermHandle             hTerm);
  392.  
  393. EXTERN_API( void )
  394. TMSetUserData                    (TermHandle             hTerm,
  395.                                  long                     userData);
  396.  
  397. EXTERN_API( long )
  398. TMGetUserData                    (TermHandle             hTerm);
  399.  
  400. EXTERN_API( short )
  401. TMAddSearch                        (TermHandle             hTerm,
  402.                                  ConstStr255Param         theString,
  403.                                  const Rect *            where,
  404.                                  TMSearchTypes             searchType,
  405.                                  TerminalSearchCallBackUPP  callBack);
  406.  
  407. EXTERN_API( void )
  408. TMRemoveSearch                    (TermHandle             hTerm,
  409.                                  short                     refnum);
  410.  
  411. EXTERN_API( void )
  412. TMClearSearch                    (TermHandle             hTerm);
  413.  
  414. EXTERN_API( Point )
  415. TMGetCursor                        (TermHandle             hTerm,
  416.                                  TMCursorTypes             cursType);
  417.  
  418. EXTERN_API( TMErr )
  419. TMGetTermEnvirons                (TermHandle             hTerm,
  420.                                  TermEnvironRec *        theEnvirons);
  421.  
  422. EXTERN_API( short )
  423. TMChoose                        (TermHandle *            hTerm,
  424.                                  Point                     where,
  425.                                  TerminalChooseIdleUPP     idleProc);
  426.  
  427. EXTERN_API( void )
  428. TMEvent                            (TermHandle             hTerm,
  429.                                  const EventRecord *    theEvent);
  430.  
  431. EXTERN_API( Boolean )
  432. TMDoTermKey                        (TermHandle             hTerm,
  433.                                  ConstStr255Param         theKey);
  434.  
  435. EXTERN_API( short )
  436. TMCountTermKeys                    (TermHandle             hTerm);
  437.  
  438. EXTERN_API( void )
  439. TMGetIndTermKey                    (TermHandle             hTerm,
  440.                                  short                     id,
  441.                                  Str255                 theKey);
  442.  
  443. EXTERN_API( void )
  444. TMGetErrorString                (TermHandle             hTerm,
  445.                                  short                     id,
  446.                                  Str255                 errMsg);
  447.  
  448.  
  449. #if PRAGMA_STRUCT_ALIGN
  450.     #pragma options align=reset
  451. #elif PRAGMA_STRUCT_PACKPUSH
  452.     #pragma pack(pop)
  453. #elif PRAGMA_STRUCT_PACK
  454.     #pragma pack()
  455. #endif
  456.  
  457. #ifdef PRAGMA_IMPORT_OFF
  458. #pragma import off
  459. #elif PRAGMA_IMPORT
  460. #pragma import reset
  461. #endif
  462.  
  463. #ifdef __cplusplus
  464. }
  465. #endif
  466.  
  467. #endif /* __TERMINALS__ */
  468.  
  469.